Mixpanelでのユーザー追跡を停止する方法
Mixpanelでユーザーごとのデータを送信していたが、途中で止めることができますか? という質問があったため、その方法について調べてみました。
結果、標準の機能としてユーザーを追跡からオプトアウトするというのがありました。
- クライアント側からの追跡
- 単一のライブラリ インスタンスから送信されたデータにのみ影響
という条件のもと、ユーザーのオプトアウト/オプトイン状態を制御することで停止または再開できる機能となっています。
ブラウザのCookie または localStorage エントリとして設定されるオプトアウト フラグによって制御されているようで、trueの場合は追跡されないようになります。 SDKの初期化時にはフラグの設定がされていないのですが、この場合デフォルトでユーザー追跡が行われることになります。
やってみる
すでにMixpanelにデータを送信済みの状態(Javascript SDKを使用した追跡)から追跡の停止をしてみます。
イベント例)
SDKの初期化時にフラグの設定をしていないので、CookieにもlocalStorageにもデータはありません。
オプトアウトを実行
opt_out_tracking メソッドを使用することで可能になります。
mixpanel.opt_out_tracking();
mixpanel.has_opted_out_tracking メソッドを使用してユーザーのオプトアウト ステータスを確認することもできます。
if(!mixpanel.has_opted_out_tracking()) { mixpanel.opt_out_tracking(); }
opt_out_tracking()
を使って追跡をオフにした後、サイトにアクセスしてオプトアウト フラグを確認してみたところ、
上記のように opt-in-outを示すデータが追加されていました。
もちろん、mixpanelのWebコンソールを見ても、Event履歴は残らなくなります。
オプトインを実行
明示的にオプトアウト フラグを無効にしたり、オプトアウトからオプトインにしてデータ追跡を再開する場合は、
mixpanel.opt_in_tracking メソッドを使用します。
mixpanel.opt_in_tracking();
opt_in_tracking()
を使って追跡をオフにした後、サイトにアクセスしてオプトアウト フラグを確認してみたところ、
上記のように opt-in-outを示すデータが0から1に変更されるようになっていました。
mixpanelのWebコンソールを見ると、またデータが送信されるようになったためEvent履歴が残るようになりました。
そして、opt_in_tracking()
を実行すると、$opt_in
というイベントが追加されるようになります。
デフォルトでユーザー追跡をオフにする
MixpanelのSDKはデフォルトでユーザーのデータを送信しますが、初期化時に明示的にオプトアウト状態にすることが可能です。
mixpanel.init("YOUR TOKEN", {opt_out_tracking_by_default: true})
上記のように、init
を呼び出す時の2つ目の引数で opt_out_tracking_by_default
をtrue
に設定します(デフォルトはfalse)。
デフォルトですべてのユーザーがオプトアウトされ、ユーザーのオプトアウト状態がfalseに設定されていない限り、データが送信されなくなります。